home *** CD-ROM | disk | FTP | other *** search
/ ADA Programming Guide / ADA Programming Guide.iso / ada_pcdp / ada / third.ada < prev    next >
Text File  |  1996-01-30  |  635b  |  36 lines

  1. with Text_IO; use Text_IO;
  2. procedure Third is
  3.   pragma Time_Slice(0.01);
  4.  
  5.   C1, C2: Integer := 1;
  6.   pragma Volatile(C1);
  7.   pragma Volatile(C2);
  8.  
  9.   task T1;
  10.   task body T1 is
  11.   begin
  12.     loop
  13.       Put_Line("Task 1 idle");
  14.       C1 := 0;
  15.       loop exit when C2 /= 0; end loop;
  16.       Put_Line("Task 1 critical section");
  17.       C1 := 1;
  18.     end loop;
  19.   end T1;
  20.  
  21.   task T2;
  22.   task body T2 is
  23.   begin
  24.     loop
  25.       Put_Line("Task 2 idle");
  26.       C2 := 0;
  27.       loop exit when C1 /= 0; end loop;
  28.       Put_Line("Task 2 critical section");
  29.       C2 := 1;
  30.     end loop;
  31.   end T2;
  32.  
  33. begin
  34.   null;
  35. end Third;
  36.